################################################################################ 
#
# Replication code for:
# Empathy-based counterspeech can reduce racist hate speech
# in a social media field experiment
#
# PNAS 2021
# 
# Attrition by groups
#
################################################################################ 

rm(list = ls())
setsave = T

################################################################################ 
#  LIBRARIES
################################################################################ 

library(readxl)
library(xtable)
library(estimatr)
library(broom)

################################################################################ 
#   FOLDERS
################################################################################ 

wd = dirname(dirname(dirname(rstudioapi::getActiveDocumentContext()$path)))
wd_res = paste0(wd, '/results')
wd_data =  paste0(wd, '/data')


################################################################################ 
#   DATA
################################################################################ 

# Load attrition dataset: only includes tweets that have been deleted and why
setwd(wd_data)
att = read.csv("attrition.csv")
att$suspended[att$banned==1] = 1 # synonyms


att[c('NOTES', 'acc_status', 'treatment_main', 'banned')] = NULL
att[is.na(att)] = 0

# Load main dataset
data = read.csv('main_dataset.csv')
data = data[c('exp_id', 'deleted_suspended', 'ITT', 'treatment_main', "treatment_dummy")]

# Merge and set attrition types to 0 for non attrited tweets
data = merge(data, att, on='exp_id', all.x = T)
outvars = c('deleted_suspended', 'privated', 'deleted', 'suspended')
data[outvars][is.na(data[outvars])] = 0

################################################################################ 
#   Effect of treatment on attrition
################################################################################ 

outcome = lm_robust(deleted_suspended ~ factor(treatment_main), data)
outcome = tidy(outcome)

if (setsave==T){write.csv(outcome, paste0(wd_res, '/attrition_by_treatment.csv'))}
